home *** CD-ROM | disk | FTP | other *** search
/ World of Education / World of Education.iso / world_f / feedback.zip / FEEDBACK.DOC < prev    next >
Text File  |  1991-04-01  |  23KB  |  478 lines

  1. The program consists of five independent subprograms,
  2. each accessed through the Main Menu.  These notes take
  3. up the subprograms one at a time.
  4.  
  5. The subprogram ONE DIMENSION is only for iteration of
  6. real functions F of a real variable x.  This function
  7. may depend on a parameter r, as is the case with the
  8. default F(x) = rx(1-x).  The value of r may be adjusted
  9. as desired.
  10.  
  11. To produce a Web Diagram, one begins by using the
  12. command Graph to draw the graphs of y = F(x) and y = x. 
  13. It may also be necessary to adjust the viewing window
  14. with Ctrl-W.  Given an F (and an r-value), one is
  15. interested in the orbit produced by a prescribed Seed
  16. value for x; this serves as the 0th term in the
  17. resulting sequence.  One can request a particular member
  18. of the sequence by means of Iteration.  The Current term
  19. of the sequence is always on display.   By means of the
  20. options One and Many, the movement from one term of the
  21. orbit to the next can be seen in the graphics window and
  22. heard on the speaker.  The Trace and Noise keys allow
  23. one to disable either function.  The speed is also
  24. adjustable to a limited extent by means of the + and -
  25. keys.  [Incidentally, the chaotic sounds one often
  26. encounters in such experimentation are occasionally (and
  27. erroneously) called "random".  For the purpose of
  28. contrast, sound produced by an actual random-number
  29. generator is available; call up Noise in the One
  30. Dimension menu.]
  31.  
  32. In addition to the graphical display of orbit behavior,
  33. one may wish to see numerical data.  The List key stores
  34. such data in memory, starting with the current term, and
  35. continuing until the user presses Escape (or until the
  36. available memory is exhausted).  Press Display to scroll
  37. though the resulting data, or else Print it.
  38.  
  39. In the Bifurcation menu, one considers how the orbit of
  40. a specified seed value is affected by varying the value
  41. of the parameter r.  Each orbit is plotted vertically
  42. (as a set of dots), while the r-axis runs across the
  43. screen horizontally.  The command Graph begins the
  44. process, which proceeds from left to right.  If it is
  45. interrupted, the process starts where it left off,
  46. unless the screen has been cleared (Ctrl-C), the window
  47. has been reset, or the function has been changed.  The
  48. graphing window is adjusted by means of Ctrl-W, as
  49. usual.  Inasmuch as the scales on axes are not
  50. geometrically linked, they are adjusted independently. 
  51. Moreover, Zoom presents another windowing option:  Use
  52. the graphics cursor to mark one corner of the desired
  53. window, then move to the opposite corner and RETURN. 
  54. There are two other parameters of significance.  One
  55. must decide how many points of each orbit are to be
  56. plotted (before moving to the next r); one must also
  57. decide whether to skip (and not plot) any of the first
  58. transient terms of each orbit - doing so allows one to
  59. see only the limiting behavior.  One may also Overlay
  60. the graph of a function X(r) on the bifurcation diagram;
  61. once there, however, it can not be removed without
  62. clearing the screen.
  63.  
  64. The subprograms MANDELBROT and FRACTAL are for two-
  65. dimensional iteration:
  66.  
  67. MANDELBROT produces fractal images that come from the
  68. iteration of Q(z) = zz + c,  where z and c are complex
  69. variables.  There are two types of images.  First there
  70. are Julia images, for which one chooses a definite value
  71. of c and then colors points of the z-plane according to
  72. their dynamic behavior.  Then there is the Mandelbrot
  73. set, in which values of the parameter c are colored
  74. according to the dynamic behavior of z = 0  [In other
  75. words, is z = 0 attracted to infinity?  If so, how
  76. quickly?]  The Mode switch in this menu allows the user
  77. to choose between the dynamic and parameter planes.
  78.  
  79. The Julia Menu offers a variety of ways to draw a Julia
  80. set.  First, however, one must have the desired c-value
  81. in place; press X or Y to make any adjustments.  
  82.  
  83. The quickest drawing method is Inverse images.  There is
  84. not much to this menu; just Ctrl-Clear screen and Draw.
  85.  
  86. N.B: By Ctrl-Clear is meant Ctrl-C.  Similarly, Ctrl-
  87. Print and Ctrl-Retrieve mean Ctrl-P and Ctrl-R,
  88. respectively.
  89.  
  90. Another relatively quick method to get a (monochrome)
  91. filled-in Julia set is with the Distance-Estimator
  92. Method, or DEM.  Clear the screen, then press Draw. 
  93. Until one presses Esc, the program keeps trying to find
  94. more points to color in the exterior of the Julia set. 
  95. It is occasionally desirable to interrupt the process to
  96. see if the computer is really done; the Pixels on stack
  97. indicator will then show whether there is unfinished
  98. checking left to be done.  If there is, just press Draw
  99. to restart.
  100.  
  101. It is occasionally the case that one is trying to create
  102. an image that has thin, filament-like parts; these will
  103. not show up very well unless they are highlighted in
  104. some fashion, either with colored borders (see below) or
  105. by thickening the actual object being graphed.  In the
  106. DEM menu, this is the meaning of the Boundary parameter,
  107. which can be adjusted to suit the example.  Keep in mind
  108. that thickening the boundary does have a cost - the
  109. blurring of the entire image.
  110.  
  111. The lavish fractal images so often encountered these
  112. days are produced through the slow Draw process.  There
  113. are two options: One can create files for Screen
  114. display, or one can create files to be dumped directly
  115. to the Printer.  
  116.  
  117. Screen image files are drawn as they are filed.  If the
  118. project is a long one, however, it is desirable to turn
  119. off the monitor.
  120.  
  121. With either storage mode, one needs to have made some
  122. preparations first.  Make sure that the window is
  123. positioned correctly.  Use Rep max to select the
  124. maximum number of iterations.   The Escape threshhold
  125. determines when orbits have migrated close enough to
  126. infinity to be terminated.  [For many drawings, one
  127. wants to set this at 4, which is minimal, but the DEM
  128. procedure and the Binary coloring scheme (below) require
  129. a higher setting for the sake of accuracy.]  Finally,
  130. set up the Colors.  This is a list of the colors that
  131. will be used cyclically to mark the escape to infinity. 
  132. To enter such a list, one Appends individual color
  133. numbers to the existing list, which can be Emptied if a
  134. fresh list is desired.  Only color numbers in the range
  135. 0..Max color number are understood.  If one is preparing
  136. an image for the printer (see below), color numbers can
  137. refer to shades of grey, and the displayed Max is
  138. adjusted accordingly.  When all preparations are
  139. complete, press Slow Draw.  A file name will be
  140. requested.  The screen is filled eight rows at a time,
  141. so there will be periods when nothing seems to be
  142. happening (except that the counter shows which row is
  143. being worked on).  The drawing process can be
  144. interrupted by pressing Escape.  A drawing can be
  145. resumed by pressing Finish.  There are two additional
  146. switches in the Colors menu:  If Binary is on, the
  147. program will use only the first two colors in the list
  148. to highlight both the external rays and the
  149. equipotential lines of the Julia set.  The Override
  150. switch allows you to alter an image when it is redrawn
  151. with Ctrl-Retrieve. Each fractal image is stored as if
  152. there were a 255-color palette available.  The chosen
  153. color sequence (stored with the image) is automatically
  154. selected to decipher the data, unless the Override
  155. switch is on, in which case the current color sequence
  156. is used instead.
  157.  
  158. Printer files store high-resolution images, which make
  159. it possible to surpass the resolution of one's graphics
  160. card.  No printing is done, however, until the file is
  161. requested with Ctrl-Retrieve.  As above, there are a few
  162. preparations that must be made before file creation can
  163. begin.  Here are the details that apply specifically to
  164. printer files:  One must designate how the color
  165. sequence is to be interpreted by the printer.  In other
  166. words, each tabled screen color must be associated to
  167. some ink color; if one does not have a color printer,
  168. then one may assign shades of gray to the screen colors. 
  169. Moreover, even if one does not have a color graphics
  170. card, the color table numbers (still called "screen
  171. colors") can be matched with shades of gray.  The
  172. matching of color to ink is done in the Ctrl-Print menu,
  173. which is also where one must identify the printer that
  174. will receive the completed image.  It is also necessary
  175. to select the number of horizontal dots.  There are
  176. constraints:  Dot-matrix printers in 80-column mode can
  177. handle at most 960 horizontal bits.  Laser printers must
  178. store the entire image before it can be printed.  The
  179. greater the resolution, the greater the time needed to
  180. produce the image.
  181.  
  182. It is possible to significantly reduce drawing time, by
  183. capitalizing on the periodicity that the black points
  184. represent.  Most of the orbits that do not lead to
  185. infinity fall into repeating cycles of points, and one
  186. can save a lot of time if such cycling is detected,
  187. thereby preventing the repetition counter from reaching
  188. Rep Max.  This is the purpose of the Periodicity menu,
  189. where one can specify whether cycle-detecting is to take
  190. place (it does take time, of course, and may therefore
  191. be not worth turning on), and which periods are to be
  192. looked for.  The Tolerance, which is entered in pixel-
  193. width units, defines how close two points of an orbit
  194. have to be in order for the detector to consider the
  195. orbit a closed cycle.  Cycle-detection can save time,
  196. but it also can err near the boundary, where convergence
  197. is a slow process, anyway.  For this reason, the program
  198. tries to sense when the boundary is near and then
  199. temporarily disable this feature; still, errors can
  200. occur.  The Destiny menu described below can help
  201. determine which periods to check for.  When framing a
  202. sketch (with the Zoom window), it is best to include
  203. complete black components (i.e., avoid wide swatches of
  204. border points), for it takes a long time for points near
  205. the border (black or not) to reveal their true colors.
  206.  
  207. The Orbits menu activates a cursor in the graphics
  208. window, which can be placed by using the arrow keys. 
  209. One can follow an orbit by pressing One step at a time,
  210. or else Many for autopilot.  This cursor retains its
  211. position in the program (even after one Escapes the
  212. Orbit menu); this is handy when one wants to go back and
  213. forth between Mandelbrot mode and Julia mode.  To see
  214. where the orbit is going, press Destiny.  Black points
  215. near the boundary can produce unreliable results.
  216.  
  217. Most of the drawing options that are present in Julia
  218. (dynamic) mode also apply in Mandelbrot (parameter)
  219. mode.  The Cursor entry in this menu allows one to
  220. select points in the Mandelbrot set (for use in the
  221. Julia menu, perhaps) and to examine their Destinies
  222. (actually the destiny of zero).
  223.  
  224. One common option is the Zoom feature, which allows the
  225. user to create an animated sequence of small images,
  226. which can be saved to disk and Played back later.  One
  227. centers the window, chooses a Reduction percentage
  228. (which determines how each window relates in linear
  229. dimensions to the preceding; default is 80%), then
  230. Begins.  After the filename (for the sequence of frames)
  231. has been chosen, the drawing starts.  It appears in the
  232. small animation window (whose default position is the
  233. upper left corner of the graphing window).  Each frame
  234. is produced by the slow-draw process; the completed
  235. images are written to separate diskfiles FILENAME.F##. 
  236. Drawing continues until there is no more room in RAM to
  237. store all the images (or until Esc is pressed), for the
  238. Playback requires that they all be stored there.  The
  239. size and placement of the animation window can be
  240. adjusted; press Move window.  Larger windows mean fewer
  241. frames will fit in RAM, of course.
  242.  
  243. Finally, consider the special Ctrl-Keys that apply in
  244. this program.  Ctrl-X will superimpose the coordinate
  245. axes on the graphics window; pressing Ctrl-X a second
  246. time will erase them.  Ctrl-D allows one to set the
  247. degree of the mapping at values other than the default 2
  248. (one can explore mappings of the form z^n + c for n-
  249. values from 2 to 9).  If the computer is equipped with
  250. an EGA card, or if a VGA card is used in medium-
  251. resolution mode (which is the same as EGA), then there
  252. is enough video memory available to activate the Ctrl-L
  253. key, which allows one to toggle back and forth between
  254. the last two retrieved screens, or the Ctrl-T key, which
  255. determines whether the image-retrieval process is shown. 
  256. Ctrl-R retrieves files from disk.  Finally, Ctrl-Zoom is
  257. for color cycling, in which rapid recoloring of the
  258. color bands gives the appearance of motion.  One must
  259. have an EGA card for this to work, however.
  260.  
  261. The FRACTAL subprogram is for examining two-dimensional
  262. iterations that are not of the special type that MANDEL
  263. can handle.  One iterates a single function (a trans-
  264. formation of the plane, that is) and colors the points
  265. of the plane according to their orbital behavior.  The
  266. function is provided through the menu entry Mapping,
  267. and it may be given component by component; the first
  268. is called F and the second is called G.  For instance,
  269. the complex squaring function zz can be written as
  270. (x+yi)(x+yi) = xx - yy + 2xyi, so that F could be
  271. entered as xx - yy and G as 2xy.  Because it is so
  272. cumbersome to describe a one-dimensional complex example
  273. as a two-dimensional real example, however, the user is
  274. permitted to simply enter F(z) in this case.  Use the
  275. Input switch to select the desired entry mode.  After
  276. providing a transformation, one must then describe how
  277. colors are going to be assigned, once drawing begins. 
  278. This is done by means of two menus.
  279.  
  280. A plotted color is determined as soon as an orbit enters
  281. a designated region of the plane.  These regions can be
  282. specified by means of the Neighborhoods menu.  To add a
  283. new neighborhood to the list, first select New.  There
  284. are two types of neighborhood description.  One can
  285. provide a target point and the radius of a disk centered
  286. there, or one can provide an inequality in the form 0 <
  287. D(x,y).  If both descriptions are present, the latter
  288. takes precedence.  Neighborhoods of infinity are dealt
  289. with in the latter fashion.  The list of neighborhoods
  290. may be inspected with the up/down arrow keys and edited. 
  291.  
  292. As in MANDEL, the Colors menu is where one specifies
  293. color sequences.  This can be done only after one has
  294. entered the target neighborhoods; these will then appear
  295. in the menu, ready to be assigned their color lists. 
  296. One may also adjust the maximum number of Repetitions
  297. that can take place before calculations with a given
  298. orbit are broken off.  Ctrl-W places the viewing window.
  299.  
  300. Finally, select Draw.  One can produce files for display
  301. on either the printer or on the screen.  After making
  302. the necessary choices, one is asked for a file name, and
  303. drawing will then begin.
  304.  
  305. The Zoom feature applies to FRACTAL explorations also.
  306.  
  307. The quadratic method Inverse Iteration can be applied to
  308. general examples, but one must work through the IFS
  309. subprogram, described below.
  310.  
  311. It is also possible to produce parameter-plane diagrams,
  312. which are analogous to the Mandelbrot set.  In other
  313. words, one has a family of mappings F(c,z) of the plane,
  314. and one wishes to create a colored map that shows how
  315. the orbit of zero is dependent on the value of the
  316. parameter c.  To produce an image of this sort, press
  317. Ctrl-Dynamics.  This will toggle the mode ON or OFF.  To
  318. see which state is active, call up the Ctrl-Key list; it
  319. will display the effect of the next Ctrl-D press (thus
  320. if the next press turns Dynamics ON, it is currently
  321. OFF).  In the resulting drawing, it may be necessary to
  322. allow for moving targets; in other words, the
  323. neighborhood centers may depend on c.  (This was not
  324. the case in the Mandelbrot menu, where the only target
  325. was the point at infinity.)  If this is the case, the
  326. information must be entered as follows:  First use the
  327. Special descriptor key to enter a formula for the
  328. position of the center, as a complex-valued function of
  329. c.  Then provide a negative Radius entry.  This signed
  330. entry is read as a signal that the Special descriptor
  331. defines a target point (not a neighborhood).
  332.  
  333. It may happen that the parameter-plane diagram (Dynamics
  334. OFF) contains some black (undecided) points, and there
  335. may be enough of them to make periodicity-checking worth
  336. the time.  This is handled just as in the Mandelbrot
  337. menu.  The Destiny calculation (in the Orbit menu) can
  338. help discover which periods are to be detected.
  339.  
  340. In Dynamical mode, the Orbits menu allows one to watch a
  341. moving cursor trace out the orbits of the transformation
  342. under investigation.  The most helpful aspect of this
  343. feature is that it can be used to locate and specify
  344. target points before the drawing begins!  In other
  345. words, let the cursor find a fixed point, then Add it to
  346. the target list.  It will still be necessary to enter
  347. the Neighborhood menu to adjust the radius entries, or
  348. to delete any unwanted neighborhoods.
  349.  
  350. ITERATED FUNCTION SYSTEM subprogram:
  351.  
  352. IFS is the customary abbreviation.  One has a
  353. transformation of the plane that is actually a list of
  354. transformations, randomly accessed; which one is used in
  355. any given application is not known in advance, though
  356. the probabilities can be affected by means of the Weight
  357. that is associated with each entry.  To input the list,
  358. call up the Mapping menu.  Each transformation in the
  359. list is entered according to the conventions described
  360. above.  Use New to add to the list, use F and G to edit
  361. existing entries, and use the up/down arrows to inspect
  362. the list.  One may also retrieve IFS files from the disk
  363. with Ctrl-R.
  364.  
  365. The Inverse Iteration method for generating Julia sets
  366. (described above) is an example of an IFS, so this IFS
  367. subprogram provides another way of generating (non-
  368. quadratic) Julia sets.  It is necessary to provide a
  369. formula every branch of the inverse transformation.
  370.  
  371. Because many interesting IFS include affine mappings,
  372. there are two auxiliary ways provided for defining such
  373. transformations:
  374.  
  375. Fixed points leads to a menu where one can focus on the
  376. geometric properties of each affine map; to specify such
  377. a map, it suffices to provide a fixed point, a rotation
  378. angle - interpreted in radians - and a dilation
  379. constant.  If Randomize is selected, the data is
  380. randomly selected, but it may be entered or altered via
  381. the editing process.  The number of transformations
  382. (i.e., the number of fixed points - initially 3) is
  383. increased when a New (random) pt is requested; it is
  384. decreased by Kill (the current) pt.   When the geometric
  385. data is acceptable, press Set-up/Orbits, which makes the
  386. program calculate and store the functions F (and G) for
  387. each mapping, then go automatically to the Orbit menu.
  388.  
  389. The other auxiliary menu is Collage, which allows one to
  390. define mappings by means of what they do individually to
  391. a reference triangle.  Triangle show places a triangle
  392. ABC (initially random) on the screen; it may be
  393. repositioned at any time by moving its vertices.  The A,
  394. B, C keys match the vertices with the cursor, which is
  395. then moved with the arrow keys.  At any stage, the state
  396. of the triangle can be shown by Triangle show.  To
  397. define a new affine map (with reference to the source
  398. triangle), one chooses Make new image, which
  399. (invisibly) re-establishes the source triangle on the
  400. screen, ready to be transformed (via the cursor) into
  401. its image.   The complete list of image triangles can be
  402. inspected by a combination of Next and Triangle show;
  403. editing is of course possible.  When the list is
  404. complete, Set-up/Orbits causes the program to calculate
  405. the system of functions (F,G), then exit automaticallly
  406. to the Orbits menu.  This method of creating IFS makes
  407. it easy to draw ferns, for example.  
  408.  
  409. Given that an IFS is in place, one uses the Orbit menu
  410. to see the orbits.  Before drawing, Ctrl-Clear the
  411. screen and press Autowindow.  This positions the window
  412. to enclose the dynamics.  (If additional adjustment is
  413. necessary, use Ctrl-W.)  Switch on Trace in order to see
  414. the points on an orbit.  In addition to the One step
  415. option, one can activate specific component functions of
  416. the IFS by pressing 1, 2, ....
  417.  
  418. Use Ctrl-S to save information to disk storage.  From
  419. the Mapping menu, this stores the actual IFS; from the
  420. Collage or Fixed point menus, this stores the geometric
  421. data instead, from which the functions are calculated. 
  422. In any case, Ctrl-R retrieves all the necessary
  423. information.  There is of course no need to save IFS
  424. sketches!
  425.  
  426. The POTPOURRI subprogram calls up a variety of standard
  427. fractal images.  
  428.  
  429. First there are Monster Curves, which are defined as
  430. limits of piecewise-linear examples; one gets the next
  431. stage by requesting Next.  The submenu Your Example
  432. allows you to examine the string-rewriting codes that
  433. produce these curves, as well as invent some of your
  434. own.  Each example is generated in a LOGO-like fashion
  435. by a string of instructions, where + and - signify
  436. changes of direction (rotations through some prescribed
  437. angle), letters A..F stand for segments (traced in the
  438. forward direction), and letters U..Z stand for places
  439. where code replacements are made:  In the transition
  440. from one stage to the next, the instruction string is
  441. enlarged, each symbol replaced according to a table. 
  442. For instance, the triangle F++F++F (where + is
  443. interpreted according to a 6-sector division of 360
  444. degrees) turns into the von Koch snowflake when the
  445. single replacement rule F --> F-F++F-F is applied over
  446. and over again.  Because the instruction strings become
  447. very long, the computer usually runs out of memory after
  448. about five generations (which is often simultaneous with
  449. a loss of clarity on the screen).  One alters the
  450. current table of replacements by entering this menu and
  451. then selecting the Character and then entering the
  452. Replacement string for it.  For example, alter the von
  453. Koch replacement rule to F --> FF-F++F-FF, then Draw. 
  454. The Initial configuration may also be altered.  It is
  455. customary for + and - to carry over unaltered to the
  456. next generation, but even this is not a hard and fast
  457. rule.  Sectors=10 means that each + becomes a 36-degree
  458. counter-clockwise change of direction, and so forth. 
  459. Another string-rewriting option is to use left/right
  460. parentheses, which tell the computer to save/recall the
  461. cursor position during the drawing process (in other
  462. words, lift the pen and put it down somewhere else). 
  463. For an example that illustrates this, request Plant.
  464.  
  465. The Cantor menu produces examples that are obtained by
  466. punching out pieces from standard shapes.  The Growth
  467. menu presents some simulations.  Crystal places a seed
  468. at the center of the screen and sets several point
  469. molecules randomly floating in solution; when a molecule
  470. happens to collide with the seed, it sticks (and is
  471. replaced by a new floater).  The number of active
  472. floaters is controlled by Points.  Visible changes in
  473. the pattern are SLOW to occur at first!  Vegetation is
  474. similar; a steady rain of random cells produces growth
  475. from the bottom of the screen upward.  For both
  476. simulations, use Ctrl-Clear screen first.  To see the
  477. random points, use the Ctrl-Watch switch.
  478.